/*
 *  MovementEngine.h
 *  DamasIA
 *
 *  Created by Anderson on 09/06/12.
 *  Copyright 2012 __MyCompanyName__. All rights reserved.
 *
 */

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#include "BoardManagement.h"

#define TRUE 1
#define FALSE 0
typedef int BOOLEAN;

//typedef struct CheckersBoard1 {
//	// ' ' == espaço vazio
//	// o == brancas normais
//	// x == pretas normais
//	// O == brancas rainhas
//	// X == pretas rainhas
//	
//	// Tabuleiro inicializado
//	char pieces[8][8];
//	
//	// Pesos das casas do tabuleiro
//	int posValues[8][8];
//	
//	int nWhite;	// Numero de pedras normais brancas
//	int nBlack;	// Numero de pedras normais pretas
//	int nWhiteQueen;	// Numero de rainhas brancas
//	int nBlackQueen;	// Numero de rainhas pretas 
//	int whiteWeight;	// Peso total das pedras brancas
//	int blackweight;	// Peso total das pedras pretas
//	int roundsToDraw;	// numero de rodadas permitidas antes de dar empate, após sobrarem apenas 1 pedra de cada jogador
//}Board1;

//void Game(Board b, int op);
BOOLEAN validaCoordenada(int x, int y);

BOOLEAN validOrig(Board b, int xo, int yo, char peca);

BOOLEAN validDest(Board b, int xd, int yd, int xo, int yo, char peca);

BOOLEAN movParaComerPecaPretaADireita(Board b, int xo, int yo, int xd, int yd);

BOOLEAN movParaComerPecaPretaAEsquerda(Board b, int xo, int yo, int xd, int yd);

BOOLEAN movParaComerPecaBrancaADireita(Board b, int xo, int yo, int xd, int yd);

BOOLEAN movParaComerPecaBrancaAEsquerda(Board b, int xo, int yo, int xd, int yd);

BOOLEAN podeComerPecaPretaADireita(Board b, int xo, int yo);

BOOLEAN podeComerPecaPretaAEsquerda(Board b, int xo, int yo);

BOOLEAN podeComerPecaBrancaADireita(Board b, int xo, int yo);

BOOLEAN podeComerPecaBrancaAEsquerda(Board b, int xo, int yo);

BOOLEAN pecaBrancaPodeMoverParaDireita(Board b, int xo, int yo);

BOOLEAN pecaBrancaPodeMoverParaEsquerda(Board b, int xo, int yo);

BOOLEAN pecaPretaPodeMoverParaDireita(Board b, int xo, int yo);

BOOLEAN pecaPretaPodeMoverParaEsquerda(Board b, int xo, int yo);
